home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / taropyon / hewin / ccisrc / dcntool.cci < prev    next >
Text File  |  1993-11-30  |  3KB  |  118 lines

  1. /*************************************************************************
  2. *    "dcntool.cci" : DOS コンソール用ツール
  3. *************************************************************************/
  4.  
  5. int        _dcn_copy( char *dcn )
  6. {
  7.     int        ret;
  8.     char    *fdl;
  9.     char    *btn;
  10.     int        srcDrv, dstDrv;
  11.     char    srcDir[128], tmp[128], dstPn[128];
  12.  
  13.     srcDrv = FS_getdrv();    /* カレントドライブ・ディレクトリ保存    */
  14.     FS_getdir( srcDir );
  15.  
  16.     if ( (fdl = FDL_open(0)) == NULL )
  17.         return (ERR);
  18.     SYL_puts( C_HGREEN, "カレントディレクトリ上のファイルをすべて複写します。複写先に移動してください。");
  19.     FDL_set_title( fdl, "FILE COPY : 複写先指定");
  20.     FDL_set_wildcard( fdl, "*.*");
  21.  
  22.     ret = FDL_start(fdl);
  23.  
  24.     dstDrv = FDL_get_drv(fdl);
  25.     strcpy( tmp, FDL_get_whare(fdl) );
  26.     sprintf( dstPn, "%c:/%s", dstDrv + 'A', tmp );
  27.     FDL_close(fdl);
  28.     if ( ret != NORMAL )
  29.         return    (DCNCMD_PROMPT);
  30.     if ( srcDrv == dstDrv && FS_cmpfnam( srcDir, tmp) == 0 )
  31.     {
  32.         DLG_tmpMsgTime( DLGPOS_MOS_SET_CENTER, DLGPOS_MOS_SET_CENTER,
  33.             C_MBLACK, C_DLGBASE, COLMIX(C_ERROR,C_GRAY),
  34.             AplErrMsgTime, "  複写元と複写先が同じです。  ");
  35.         return (DCNCMD_PROMPT);
  36.     }
  37.     btn = MNU_allocBtn( 2 );
  38.     MNU_setBtn( btn, 0, '\r'  , KA_EXEC  , 1, "COPY : [実行]" );
  39.     MNU_setBtn( btn, 1, '\x1B', KA_CANCEL, 2, "CANECEL : [取消]" );
  40.     ret = MNU_selectBtn( DLGPOS_CENTER_OF_SCN, DLGPOS_CENTER_OF_SCN, 
  41.         C_MBLACK, C_DLGBASE, COLMIX(C_WARNNING,C_GRAY),
  42.         SELBTN_ATT_LEFT, 2, btn,
  43.         "複写元 : %c:/%s  \n複写先 : %s  \n        複写を行いますか?      ",
  44.         srcDrv + 'A', srcDir, dstPn );
  45.     MNU_freeBtn( btn );
  46.     if ( ret != 1 )
  47.         return (DCNCMD_PROMPT);
  48.  
  49.     /* 複写開始    */
  50.     FS_chdrv( srcDrv );
  51.     sprintf( tmp, "/%s", srcDir );
  52.     FS_chdir( tmp );
  53.     FM_fcopy( "*.*", 0x16, AFFCOPY_OVERWRITE_CHECK, dstPn, "" );
  54.  
  55.     return (DCNCMD_PROMPT);
  56. }
  57.  
  58. int        _dcn_delete( char *dcn )
  59. {
  60.     int        i, ret;
  61.     UINT    cf;
  62.     char    *fn;
  63.     char    *btn;
  64.     char    *fdl;
  65.  
  66.     if ( (fdl = FDL_open((FDL_MODE_MULTI|FDL_MODE_BIT_DIRIGN|FDL_MODE_BIT_SIDEWORK))) == NULL )
  67.         return (ERR);
  68.     FDL_set_title( fdl, "FILE DELETE");
  69.     FDL_set_wildcard( fdl, "*.*");
  70.     SYL_puts(C_HGREEN,"削除するファイルを指定してください。");
  71.     ret = FDL_start(fdl);
  72.     if ( ret != NORMAL )
  73.     {
  74.         SYL_clear();
  75.         FDL_close(fdl);
  76.         return (DCNCMD_PROMPT);
  77.     }
  78.     SYL_clear();
  79.  
  80.     i = 0;
  81.     while ( FDL_getMarkFile(fdl, i) != NULL )
  82.         ++i;
  83.  
  84.     if ( i == 0 )
  85.     {
  86.         FDL_close(fdl);
  87.         DLG_tmpMsgTime( DLGPOS_MOS_SET_CENTER, DLGPOS_MOS_SET_CENTER,
  88.             C_MBLACK, C_DLGBASE, COLMIX(C_ERROR,C_GRAY),
  89.             AplErrMsgTime, "    ファイル名が指定されていません。  " );
  90.         return (DCNCMD_PROMPT);
  91.     }
  92.  
  93.     btn = MNU_allocBtn( 2 );
  94.     MNU_setBtn( btn, 0, '\r'  , KA_EXEC  , 1, "DELETE : [実行]" );
  95.     MNU_setBtn( btn, 1, '\x1B', KA_CANCEL, 2, "CANECEL : [取消]" );
  96.     ret = MNU_selectBtn( DLGPOS_CENTER_OF_SCN, DLGPOS_CENTER_OF_SCN, 
  97.         C_MBLACK, C_DLGBASE, COLMIX(C_WARNNING,C_GRAY), SELBTN_ATT_LEFT, 2, btn,
  98.         "  %d 個のファイルが指定されています。  \n        削除しますか?      ",
  99.         i );
  100.     MNU_freeBtn( btn );
  101.     if ( ret != 1 )
  102.     {
  103.         FDL_close(fdl);
  104.         return (DCNCMD_PROMPT);
  105.     }
  106.  
  107.     i = 0;
  108.     while ( (fn = FDL_getMarkFile(fdl, i)) != NULL )
  109.     {
  110.         SYL_puts( C_HGREEN, "DELETE : %s", fn );
  111.         FS_remove( fn );
  112.         ++i;
  113.     }
  114.     FDL_close(fdl);
  115.  
  116.     return (DCNCMD_PROMPT);
  117. }
  118.